跳到主要内容

Docker 操作镜像

基本命令

# 启动
sudo service docker start

# 重启
sudo service docker restart

# 停止
sudo service docker stop
# 查看当前所有镜像
sudo docker images

# 搜索镜像
sudo docker search xxx

# 拉取镜像
sudo docker pull xxx
# 如果要指定版本就加个冒号
sudo docker pull xxx:7

# 删除镜像(注意:删除镜像是 rmi,删除容器是 rm)
sudo docker rmi xxx

Commit 镜像

# docker commit 提交容器成为一个新的副本

# 语法(类似于 git)这个 TAG 就是版本号
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名: [TAG]

# 例如先进入一个 tomcat
docker run -d --name=mytomcat -p 8000:8080 tomcat
docker exec -it mytomcat /bin/bash
# 把目录里的东西复制进去(只是做些更改)
cp -r webapps.dist/* webapps

# http://localhost:8000/

# 提交为镜像
docker commit -a="alsritter" -m="这是一个有根项目的tomcat" e3be943e3356 mytomcat01:1.0
# 查看
docker images

备份和迁移镜像

概述

Docker 可以将容器保存为镜像,交由其它服务器运行,这样就可以使其它的服务器也拥有一样的生产环境

将容器保存为一个镜像

# 把一个已有的容器保存为一个镜像
docker commit mynginx myningximage

# 然后就可以查看当前镜像了
docker images

备份镜像

# 把 myningximage 这个镜像保存到 mynginx.tar 里面
# -o :输出到的文件
docker save -o mynginx.tar myningximage

恢复镜像

# 先停止容器
docker stop mynginx
# 删除容器
docker rm mynginx
# 再删除镜像(注意:删除镜像是 rmi,删除容器是 rm)
docker rmi myningximage

# 恢复镜像
docker load -i mynginx.tar

私有仓库

搭建私有仓库

就是搭建私有仓库来管理自己的镜像

# 1、拉取私有仓库镜像
docker pull registry
# 2、启动私有仓库容器
docker run -di --name=registry -p5000:5000 registry
# 3、打开浏览器输入地址http://宿主机ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库搭建成功

# 4、修改daemon.json
vi /etc/docker/daemon.json
# 在上述文件中添加一个 key,保存退出。此步用于让 docker 信任私有仓库地址;注意将宿主机 ip 修改为自己宿主机真实 ip
"insecure-registries":["宿主机ip:5000"] # 127.0.0.1:5000

# 5、重启docker 服务
sudo service docker restart

docker start registry

# http://localhost:5000/v2/_catalog

推送到私有仓库

# 1、标记镜像为私有仓库的镜像
docker tag jdk1.8 宿主机IP:5000/jdk1.8

# 2、再次启动私有仓库容器
docker restart registry

# 3、上传标记的镜像
docker push 宿主机IP:5000/jdk1.8

# 4、输入网址查看仓库 http://localhost:5000/v2/_catalog

从私有仓库拉取镜像

# 如果私有仓库所在的服务器和当前服务器是同一个服务器 需要先删除当前镜像(指定镜像名,不是id)
docker rmi 127.0.0.1:5000/jdk1.8 # 前面这个 127.0.0.1:5000 单纯只是同名了而已

#拉取镜像
docker pull 127.0.0.1:5000/jdk1.8

#可以通过如下命令查看 docker 的信息;了解到私有仓库地址
docker info